mixin th-core-context-get {
  /* Describe: Return breakpoint list from context. */
  result: 768px;
  /* Describe: Return h1 heading list from context. */
  result: 10px 20px 30px 40px;
  /* Describe: Interact heading context with API. */
  font-size: 10px;
  line-height: 20px;
  margin-top: 30px;
  margin-bottom: 40px;
}

mixin th-core-context-set {
  /* Describe: Return breakpoint list from context. */
  result: 768px;
  /* Describe: Return h1 heading list from context. */
  result: 10px 20px 30px 40px;
  /* Describe: Interact heading context with API. */
  font-size: 10px;
  line-height: 20px;
  margin-top: 30px;
  margin-bottom: 40px;
}

function th-math-power {
  /* Describe: Calculate power of 5 to 3. */
  result: 125;
  /* Describe: Calculate power of 5 to 1. */
  result: 5;
  /* Describe: Calculate power of -5 to 3. */
  result: -125;
}

function th-math-round-to {
  /* Describe: Round 5.0246 to 3 decimal places */
  result: 5.025;
}

function th-map-set {
  /* Describe: Set map key 'foo' to 'Hello World' */
  result: "Hello World";
}

function th-list-has-index {
  /* Describe: Check list for an index. */
  result: true;
  /* Describe: Check list for an index. */
  result: false;
}

function th-list-has {
  /* Describe: Check list for value x (exists). */
  result: true;
  /* Describe: Check list for value x (doesn't exist). */
  result: false;
}

function th-list-has-deep {
  /* Describe: Check list for a value. */
  result: true;
  /* Describe: Check list for a deep value. */
  result: true;
  /* Describe: Check list for a deep value that doesnt exist. */
  result: false;
}

function th-list-flatten {
  /* Describe: Flatten multidimensional list. */
  result: a, b, c, d;
}

function th-unit-strip {
  /* Describe: Strip unit from 32px. */
  result: 32;
}

function th-unit-cast {
  /* Describe: Create a 32px number. */
  result: 32px;
  /* Describe: Create a 32foo number (doesn't exist). */
  result: 32;
}

function th-unit-convert {
  /* Describe: Bind 32 to em. */
  result: 32em;
}

function th-unit-convert-absolute {
  /* Describe: Convert 4.889em to px. */
  result: 88.002px;
  /* Describe: Convert 4.889 to px. */
  result: 88.002px;
  /* Describe: Convert 4.889rem to px. */
  result: 88.002px;
  /* Describe: Convert 2.750em to px with base font size of 32px. */
  result: 88px;
}

function th-unit-convert-relative {
  /* Describe: Convert 32px to em. */
  result: 1.77778em;
  /* Describe: Convert 32px to rel. */
  result: 1.77778;
  /* Describe: Convert 32px to rem. */
  result: 1.77778rem;
  /* Describe: Convert 32px to em with base font size of 12px. */
  result: 2.66667em;
}

function th-unit-convert-em {
  /* Describe: Convert 22px to em. */
  result: 1.22222em;
  /* Describe: Convert 24px to em with base font size of 32px. */
  result: 0.75em;
}

function th-unit-convert-rem {
  /* Describe: Convert 22px to rem. */
  result: 0.91667rem;
}

function th-unit-convert-rel {
  /* Describe: Convert 22px to rel. */
  result: 1.22222;
  /* Describe: Convert 24px to rel with base font size of 32px. */
  result: 0.75;
}

function th-unit-convert-px {
  /* Describe: Convert 2.35em to px. */
  result: 42.3px;
  /* Describe: Convert 2.35em to px with base font size of 22px. */
  result: 51.7px;
}

function th-heading {
  /* Describe: Return heading */
  result: 10px 20px 30px 40px;
  /* Describe: Return heading by breakpoint */
  result: 50px 60px 70px 80px 768px;
  /* Describe: Return a further heading by breakpoint */
  result: 90px 100px 110px 120px 1024px;
}

function th-heading-get-map {
  /* Describe: Return heading map */
  result: 5px;
  /* Describe: Return heading map with breakpoint */
  result: 10px 20px 30px 40px, 50px 60px 70px 80px 768px, 90px 100px 110px 120px 1024px;
}

function th-heading-has-next {
  /* Describe: Check for heading with next */
  result: true;
  /* Describe: Check for heading without next */
  result: false;
}

function th-heading-get-next {
  /* Describe: Get heading with next */
  result: 10px 20px 30px 40px;
  /* Describe: Get heading with next and breakpoint */
  result: 50px 60px 70px 80px 768px;
}

function th-h {
  /* Describe: Return heading */
  result: 10px 20px 30px 40px;
  /* Describe: Return heading by breakpoint */
  result: 50px 60px 70px 80px 768px;
  /* Describe: Return a further heading by breakpoint */
  result: 90px 100px 110px 120px 1024px;
}

function th-property {
  /* Describe: Return property from heading */
  result: 0.55556em;
  /* Describe: Return property from heading with breakpoint */
  result: 2.77778em;
  /* Describe: Return default property from heading */
  result: 3px;
  /* Describe: Return default property from heading with breakpoint */
  result: 0.16667rem;
  /* Describe: Return default from heading via keyword */
  result: 3px;
  /* Describe: Return default from heading via missing value */
  result: 0.33333;
  /* Describe: Return property from heading and unit override to percent. */
  result: 55.55556%;
  /* Describe: Return property from heading and unit override to percent with base font size of 14px. */
  result: 357.14286%;
  /* Describe: Return font size from heading */
  result: 0.55556em;
  /* Describe: Return font size from heading with breakpoint */
  result: 2.77778em;
  /* Describe: Return font size from heading with a single value */
  result: 0.27778em;
  /* Describe: Return line height from heading */
  result: 2;
  /* Describe: Return line height from heading with breakpoint */
  result: 1.2;
  /* Describe: Return margin-top from heading */
  result: 30px;
  /* Describe: Return margin-top from heading with breakpoint */
  result: 70px;
  /* Describe: Return margin-top from heading with single value */
  result: 29px;
  /* Describe: Return margin-bottom from heading */
  result: 1.66667rem;
  /* Describe: Return margin-bottom from heading with breakpoint */
  result: 3.33333rem;
  /* Describe: Return margin-bottom from heading with single value */
  result: 1.20833rem;
}

function _th-property-get {
  /* Describe: Return font size property value. */
  result: 10px;
  /* Describe: Return margin top property value. */
  result: 30px;
  /* Describe: Return margin bottom property value. */
  result: 40px;
  /* Describe: Return missing value. */
  result: false;
  /* Describe: Return missing inner value. */
  result: 30px;
}

function _th-property-default {
  /* Describe: Return default font size value. */
  result: 0.05556em;
}

function _th-property-unit-convert-property {
  /* Describe: Convert 10px font size to em. */
  result: 0.55556em;
  /* Describe: Convert 10px font size with base font size of 20px. */
  result: 0.5em;
}

function th-p {
  /* Describe: Return property from heading */
  result: 0.55556em;
  /* Describe: Return property from heading with breakpoint */
  result: 2.77778em;
  /* Describe: Return default property from heading */
  result: 3px;
  /* Describe: Return default property from heading with breakpoint */
  result: 0.16667rem;
  /* Describe: Return default from heading via keyword */
  result: 3px;
  /* Describe: Return default from heading via missing value */
  result: 0.33333;
  /* Describe: Return property from heading and unit override to percent. */
  result: 55.55556%;
  /* Describe: Return property from heading and unit override to percent with base font size of 14px. */
  result: 357.14286%;
  /* Describe: Return font size from heading */
  result: 0.55556em;
  /* Describe: Return font size from heading with breakpoint */
  result: 2.77778em;
  /* Describe: Return font size from heading with a single value */
  result: 0.27778em;
  /* Describe: Return line height from heading */
  result: 2;
  /* Describe: Return line height from heading with breakpoint */
  result: 1.2;
  /* Describe: Return margin-top from heading */
  result: 30px;
  /* Describe: Return margin-top from heading with breakpoint */
  result: 70px;
  /* Describe: Return margin-top from heading with single value */
  result: 29px;
  /* Describe: Return margin-bottom from heading */
  result: 1.66667rem;
  /* Describe: Return margin-bottom from heading with breakpoint */
  result: 3.33333rem;
  /* Describe: Return margin-bottom from heading with single value */
  result: 1.20833rem;
}

mixin th-heading {
  /* Describe: Output styles for a heading. */
  font-size: 0.55556em;
  line-height: 2;
  margin-top: 30px;
  margin-bottom: 1.66667rem;
  /* Describe: Output styles for a heading manually. */
  font-size: 0.55556em;
  line-height: 2;
  margin-top: 30px;
  margin-bottom: 1.66667rem;
  /* Describe: Output styles for a heading with a breakpoint. */
  font-size: 2.77778em;
  line-height: 1.2;
  margin-top: 70px;
  margin-bottom: 3.33333rem;
  /* Describe: Output styles for a heading with a breakpoint manually. */
  font-size: 2.77778em;
  line-height: 1.2;
  margin-top: 70px;
  margin-bottom: 3.33333rem;
  /* Describe: Output styles for a heading with a default keyword. */
  font-size: 0.22222em;
  line-height: 0.5;
  margin-top: 28px;
  margin-bottom: 2rem;
  /* Describe: Output styles for a heading with only one value. */
  font-size: 0.27778em;
  line-height: 0.4;
  margin-top: 3px;
  margin-bottom: 0.16667rem;
  /* Describe: Output styles for a heading with a singular list value. */
  font-size: 0.5em;
  line-height: 2.11111;
  margin-top: 29px;
  margin-bottom: 1.20833rem;
  /* Describe: Output only font-size and line-height styles for a heading. */
  font-size: 0.55556em;
  line-height: 2;
}

mixin th-headings {
  /* Describe: Output styles for a heading. */
  font-size: 0.27778em;
  line-height: 0.4;
  margin-top: 3px;
  margin-bottom: 0.16667rem;
  /* Describe: Output styles for a heading with multiple breakpoints. */
  font-size: 0.55556em;
  line-height: 2;
  margin-top: 30px;
  margin-bottom: 1.66667rem;
  /* Describe: Output font-size and line-height styles for h1 heading with multiple breakpoints. */
  font-size: 0.55556em;
  line-height: 2;
  /* Describe: Output styles for a heading with no breakpoint. */
  font-size: 0.16667em;
  line-height: 1.33333;
  margin-top: 5px;
  margin-bottom: 0.20833rem;
}
@media (min-width: 768px) {
  mixin th-headings {
    font-size: 2.77778em;
    line-height: 1.2;
    margin-top: 70px;
    margin-bottom: 3.33333rem;
  }
}
@media (min-width: 1024px) {
  mixin th-headings {
    font-size: 5em;
    line-height: 1.11111;
    margin-top: 110px;
    margin-bottom: 5rem;
  }
}
@media (min-width: 768px) {
  mixin th-headings {
    font-size: 2.77778em;
    line-height: 1.2;
  }
}
@media (min-width: 1024px) {
  mixin th-headings {
    font-size: 5em;
    line-height: 1.11111;
  }
}

mixin _th-heading-context-loop {
  /* Describe: Simple loop through a heading. */
  result: null;
  result: null;
  result: null;
  /* Describe: Return heading font size from each list in a heading. */
  result: 10px 20px 30px 40px;
  result: 50px 60px 70px 80px 768px;
  result: 90px 100px 110px 120px 1024px;
}

mixin th-heading-context {
  /* Describe: Loop heading context without breakpoint output. */
  result: 10px 20px 30px 40px;
  result: 50px 60px 70px 80px 768px;
  result: 90px 100px 110px 120px 1024px;
  /* Describe: Loop heading context with breakpoint output. */
  result: 10px 20px 30px 40px;
}
@media (min-width: 768px) {
  mixin th-heading-context {
    result: 50px 60px 70px 80px 768px;
  }
}
@media (min-width: 1024px) {
  mixin th-heading-context {
    result: 90px 100px 110px 120px 1024px;
  }
}

mixin th-h {
  /* Describe: Output styles for a heading. */
  font-size: 0.55556em;
  line-height: 2;
  margin-top: 30px;
  margin-bottom: 1.66667rem;
  /* Describe: Output styles for a heading manually. */
  font-size: 0.55556em;
  line-height: 2;
  margin-top: 30px;
  margin-bottom: 1.66667rem;
  /* Describe: Output styles for a heading with a breakpoint. */
  font-size: 2.77778em;
  line-height: 1.2;
  margin-top: 70px;
  margin-bottom: 3.33333rem;
  /* Describe: Output styles for a heading with a breakpoint manually. */
  font-size: 2.77778em;
  line-height: 1.2;
  margin-top: 70px;
  margin-bottom: 3.33333rem;
  /* Describe: Output styles for a heading with a default keyword. */
  font-size: 0.22222em;
  line-height: 0.5;
  margin-top: 28px;
  margin-bottom: 2rem;
  /* Describe: Output styles for a heading with only one value. */
  font-size: 0.27778em;
  line-height: 0.4;
  margin-top: 3px;
  margin-bottom: 0.16667rem;
  /* Describe: Output styles for a heading with a singular list value. */
  font-size: 0.5em;
  line-height: 2.11111;
  margin-top: 29px;
  margin-bottom: 1.20833rem;
  /* Describe: Output only font-size and line-height styles for a heading. */
  font-size: 0.55556em;
  line-height: 2;
}

mixin th-hs {
  /* Describe: Output styles for a heading. */
  font-size: 0.27778em;
  line-height: 0.4;
  margin-top: 3px;
  margin-bottom: 0.16667rem;
  /* Describe: Output styles for a heading with multiple breakpoints. */
  font-size: 0.55556em;
  line-height: 2;
  margin-top: 30px;
  margin-bottom: 1.66667rem;
  /* Describe: Output font-size and line-height styles for h1 heading with multiple breakpoints. */
  font-size: 0.55556em;
  line-height: 2;
}
@media (min-width: 768px) {
  mixin th-hs {
    font-size: 2.77778em;
    line-height: 1.2;
    margin-top: 70px;
    margin-bottom: 3.33333rem;
  }
}
@media (min-width: 1024px) {
  mixin th-hs {
    font-size: 5em;
    line-height: 1.11111;
    margin-top: 110px;
    margin-bottom: 5rem;
  }
}
@media (min-width: 768px) {
  mixin th-hs {
    font-size: 2.77778em;
    line-height: 1.2;
  }
}
@media (min-width: 1024px) {
  mixin th-hs {
    font-size: 5em;
    line-height: 1.11111;
  }
}

mixin th-property {
  /* Describe: Output font-size for a heading. */
  font-size: 0.55556em;
  /* Describe: Output font-size for a heading with a breakpoint. */
  font-size: 2.77778em;
  /* Describe: Output font-size for a heading with a single value. */
  font-size: 0.27778em;
  /* Describe: Output font-size for a heading without unit conversion. */
  font-size: 5px;
  /* Describe: Output font-size from heading and unit override to percent. */
  font-size: 55.55556%;
  /* Describe: Output property from heading and unit override to percent with base font size of 14px. */
  font-size: 357.14286%;
  /* Describe: Output line-height for a heading. */
  line-height: 2;
  /* Describe: Output line-height for a heading with a breakpoint. */
  line-height: 1.2;
  /* Describe: Output line-height for a heading without unit conversion. */
  line-height: 20px;
  /* Describe: Output line-height from heading and unit override to percent. */
  line-height: 200%;
  /* Describe: Output margin-top for a heading. */
  margin-top: 30px;
  /* Describe: Output margin-top for a heading with a breakpoint. */
  margin-top: 70px;
  /* Describe: Output margin-top for a heading with a singular list value. */
  margin-top: 29px;
  /* Describe: Output margin-top for a heading without unit conversion. */
  margin-top: 29px;
  /* Describe: Output margin-top from heading and unit override to percent. */
  margin-top: 300%;
  /* Describe: Output margin-bottom for a heading. */
  margin-bottom: 1.66667rem;
  /* Describe: Output margin-bottom for a heading with a breakpoint. */
  margin-bottom: 3.33333rem;
  /* Describe: Output margin-bottom for a heading with a singular list value. */
  margin-bottom: 1.20833rem;
  /* Describe: Output margin-bottom for a heading without unit conversion. */
  margin-bottom: 29px;
  /* Describe: Output margin-bottom from heading and unit override to percent. */
  margin-bottom: 400%;
}

mixin th-p {
  /* Describe: Output font-size for a heading. */
  font-size: 0.55556em;
  /* Describe: Output font-size for a heading with a breakpoint. */
  font-size: 2.77778em;
  /* Describe: Output font-size for a heading with a single value. */
  font-size: 0.27778em;
  /* Describe: Output font-size for a heading without unit conversion. */
  font-size: 5px;
  /* Describe: Output font-size from heading and unit override to percent. */
  font-size: 55.55556%;
  /* Describe: Output property from heading and unit override to percent with base font size of 14px. */
  font-size: 357.14286%;
  /* Describe: Output line-height for a heading. */
  line-height: 2;
  /* Describe: Output line-height for a heading with a breakpoint. */
  line-height: 1.2;
  /* Describe: Output line-height for a heading without unit conversion. */
  line-height: 20px;
  /* Describe: Output line-height from heading and unit override to percent. */
  line-height: 200%;
  /* Describe: Output margin-top for a heading. */
  margin-top: 30px;
  /* Describe: Output margin-top for a heading with a breakpoint. */
  margin-top: 70px;
  /* Describe: Output margin-top for a heading with a singular list value. */
  margin-top: 29px;
  /* Describe: Output margin-top for a heading without unit conversion. */
  margin-top: 29px;
  /* Describe: Output margin-top from heading and unit override to percent. */
  margin-top: 300%;
  /* Describe: Output margin-bottom for a heading. */
  margin-bottom: 1.66667rem;
  /* Describe: Output margin-bottom for a heading with a breakpoint. */
  margin-bottom: 3.33333rem;
  /* Describe: Output margin-bottom for a heading with a singular list value. */
  margin-bottom: 1.20833rem;
  /* Describe: Output margin-bottom for a heading without unit conversion. */
  margin-bottom: 29px;
  /* Describe: Output margin-bottom from heading and unit override to percent. */
  margin-bottom: 400%;
}

mixin th-breakpoint {
  /* Describe: Output a heading with a 768px breakpoint within a 768px min-width media query. */
  /* Describe: Output styles for a heading with a 768px breakpoint within a 768px max-width media query. */
  /* Describe: Output styles for a heading with a 768px breakpoint within a range media query range from 768px to 1023px. */
}
@media (min-width: 768px) {
  mixin th-breakpoint {
    font-size: 2.72222em;
    line-height: 1.20408;
    margin-top: 69px;
    margin-bottom: 2.875rem;
  }
}
@media (max-width: 768px) {
  mixin th-breakpoint {
    font-size: 2.72222em;
    line-height: 1.20408;
    margin-top: 69px;
    margin-bottom: 2.875rem;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  mixin th-breakpoint {
    font-size: 2.72222em;
    line-height: 1.20408;
    margin-top: 69px;
    margin-bottom: 2.875rem;
  }
}

mixin th-breakpoint-context {
  /* Describe: Output a heading with a 768px breakpoint context. */
  font-size: 5em;
  line-height: 1.11111;
  margin-top: 110px;
  margin-bottom: 5rem;
}
